#ifndef __ABSTRACT_IMP_HPP__
#define __ABSTRACT_IMP_HPP__

#include <iostream>
using std::cout;
using std::endl;

class AbstractImp {
public:
	~AbstractImp() { cout<<__func__<<endl; }
	virtual void operation() = 0;
protected:
	AbstractImp() { cout<<__func__<<endl; }
};

#endif /* end of include guard */
